#include <iostream>
#include "log.hpp"

#include "httplib.h"
#include "searcher.hpp"

const std::string input = "data/raw_html/raw.txt";
const std::string root_path = "./wwwroot";

int main()
{
    // 定义search对象
    ns_searcher::Searcher search;
    // 初始化search对象的时候会创建双索引
    search.InitSearcher(input);
    // 定义server对象
    httplib::Server svr;
    // 设置网页根目录
    svr.set_base_dir(root_path.c_str());
    // 注册get方法
    svr.Get("/s", [&search](const httplib::Request &req, httplib::Response &rsp){
            if(!req.has_param("word")){
                rsp.set_content("必须要有搜索关键字!", "text/plain; charset=utf-8");
                return;
            }

            // 获取用户输入的关键字
            std::string word = req.get_param_value("word");
            LOG(INFO, "用户搜索的内容为: %s\n",word.c_str());

            // 根据用户输入的字符串进行搜索并返回搜索结果
            std::string json_string;
            search.Search(word, &json_string);
            rsp.set_content(json_string, "application/json");
            });

    LOG(INFO, "服务器启动成功...\n");
    // 设置服务器监听的ip地址和端口
    svr.listen("0.0.0.0", 8081);

    return 0;
}